﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using AdmLaboratorios.DTO;
using AdmLaboratorios.Business;

namespace AdmLaboratorios
{
    public partial class frmValeItemDevolucion : Form
    {
        public PartnerDTO Partner { get; set; }
        public ProductoDTO Producto { get; set; }
        public string NroAnalisis { get; set; }
        public decimal Cantidad { get; set; }
        public string Observaciones { get; set; }
        public string Estado { get; set; }

        public frmValeItemDevolucion()
        {
            InitializeComponent();
        }

        private bool Validations()
        {
            //if (nuCantidad.Value == 0)
            if (FormsHelper.StN(txCantidad.Text) == 0)
                return false;

            if (txNroAnalisis.Text.Trim() == string.Empty)
                return false;

            if (Producto == null)
                return false;

            if (!rbAprobado.Checked && !rbCuarentena.Checked)
                return false;

            return true;
        }

        private void btStock_Click(object sender, EventArgs e)
        {
            using (frmProductoSeleccionVale f = new frmProductoSeleccionVale())
            {
                f.Partner = this.Partner;
                FormsHelper.CargarColumnasGrilla(f);
                if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    this.Producto = f.Producto;

                    txProducto.Text = this.Producto.ToString();
                    //txProducto.Text = string.Format("{0} [{1}] | {2}",
                    //    this.Producto.Nombre,
                    //    this.Producto.Codigo,
                    //    this.Producto.Tipo);

                    txUM.Text = this.Producto.UnidadMedida;
                }
            }
        }

        private void picStockDetalle_Click(object sender, EventArgs e)
        {
            if (this.Producto != null)
            {
                using (frmProductoDetalle f = new frmProductoDetalle())
                {
                    f.Producto = this.Producto;
                    FormsHelper.CargarColumnasGrilla(f);
                    f.ShowDialog();
                }
            }
        }

        private void btCancelar_Click(object sender, EventArgs e)
        {
            Producto = null;
            Cantidad = 0;
            NroAnalisis = string.Empty;
            Observaciones = string.Empty;
            Estado = string.Empty;

            this.DialogResult = System.Windows.Forms.DialogResult.Cancel;
            this.Close();
        }

        private void btAceptar_Click(object sender, EventArgs e)
        {
            if (Validations())
            {
                NroAnalisis = txNroAnalisis.Text.Trim();
                Observaciones = txObs.Text.Trim();
                Cantidad = FormsHelper.StN(txCantidad.Text);
                
                if (rbAprobado.Checked)
                    Estado = "APROBADO";

                if (rbCuarentena.Checked)
                    Estado = "CUARENTENA";

                this.DialogResult = System.Windows.Forms.DialogResult.OK;
                this.Close();
            }
            else
            {
                errP.SetError(btAceptar, "Campos obligatorios sin cargar");
            }
        }

        private void frmValeItemDevolucion_Load(object sender, EventArgs e)
        {
            txNroAnalisis.Text = NroAnalisis;
            txCantidad.Text = Cantidad.ToString();
            txObs.Text = Observaciones;

            rbAprobado.Checked = (Estado.ToUpper().Trim() == "APROBADO");
            rbCuarentena.Checked = (Estado.ToUpper().Trim() == "CUARENTENA");

            if (Producto != null)
            {
                txProducto.Text = this.Producto.ToString();
                //txProducto.Text = string.Format("{0} [{1}] | {2}",
                //   this.Producto.Nombre,
                //   this.Producto.Codigo,
                //   this.Producto.Tipo);
            }
        }
    }
}
